using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using MakeIT.Framework.Util;
using MakeIT.SGI.ERP.Entidades;
using MakeIT.SGI.ERP.Negocios;

namespace MakeIT.SGI.ERP.Apresentacao
{
	public partial class CadastroTicketfin : System.Web.UI.Page
	{

		UsuarioVO usuarioVO = null;
		protected SgiDAOT SgiDAOT = null;

		protected void Page_Load(object sender, EventArgs e)
		{
			this.SgiDAOT = new SgiDAOT();
			usuarioVO = (UsuarioVO)this.Session["userActive"];

			if (!IsPostBack)
			{
				atualizarDdlIdFilial(null, null);
                CarregaDDL.carregaOrigemDestinoTicket(this.ddlOrigem, true);
			}
		}

		protected void Page_Unload(object sender, EventArgs e)
		{
			try
			{
				if (this.SgiDAOT != null)
					this.SgiDAOT.closeDAO();
			}
			catch (Exception ex) {}
		}

		protected void grvResultado_PageIndexChanging(object sender, GridViewPageEventArgs e)
		{
			this.grvResultado.PageIndex = e.NewPageIndex;
			btnPesquisa_Click(null, null);
		}
		protected void atualizarDdlIdFilial(object sender, ImageClickEventArgs e)
		{
			CarregaDDL.carregaFilial(this.SgiDAOT, this.ddlIdFilial);
		}

		/// <summary>
		/// Manipula o evento do botão btnPesquisa
		/// </summary>
		/// <param name="sender">Objeto disparador do evento</param>
		/// <param name="e">Argumento do evento</param>
		protected void btnPesquisa_Click(object sender, EventArgs e)
		{

			//Declara objetos
			int? idTicketFin = null;
			string origem = null;
			string finalidade = null;
			char? situacao = null;
			int? idFilial = null;
            DateTime? dtTicketFinDe = null;
            DateTime? dtTicketFinAte = null;
            DateTime? dtAcolhimentoDe = null;
            DateTime? dtAcolhimentoAte = null;

			try
			{

				if (!string.IsNullOrEmpty(this.txtIdTicketFin.Text))
				{
					idTicketFin = Int32.Parse(this.txtIdTicketFin.Text);
				}

                if (!this.ddlOrigem.SelectedValue.Equals("0"))
				{
					origem = this.ddlOrigem.SelectedItem.Text;
				}

				if (!string.IsNullOrEmpty(this.txtFinalidade.Text))
				{
					finalidade = this.txtFinalidade.Text;
				}

				if(!this.ddlSituacao.SelectedValue.Equals(" "))
				{
					situacao = Convert.ToChar(this.ddlSituacao.SelectedValue);
				}

				if(!this.ddlIdFilial.SelectedValue.Equals("-1"))
				{
					idFilial = Int32.Parse(this.ddlIdFilial.SelectedValue);
				}

                //-------------- data do ticket ----------------------

                if (!string.IsNullOrEmpty(this.txtDtTicketFinDe.Text))
                {
                    dtTicketFinDe = DateTime.Parse(this.txtDtTicketFinDe.Text);
                }
                else if (!string.IsNullOrEmpty(this.txtDtTicketFinAte.Text))
                {
                    dtTicketFinDe = dtTicketFinAte;
                }

                if (!string.IsNullOrEmpty(this.txtDtTicketFinAte.Text))
                {
                    dtTicketFinAte = DateTime.Parse(this.txtDtTicketFinAte.Text);
                }
                else if (!string.IsNullOrEmpty(this.txtDtTicketFinDe.Text))
                {
                    dtTicketFinAte = dtTicketFinDe;
                }

                //-------------- data do acolhimento ----------------------

                if (!string.IsNullOrEmpty(this.txtDtAcolhimentoDe.Text))
                {
                    dtAcolhimentoDe = DateTime.Parse(this.txtDtAcolhimentoDe.Text);
                }
                else if (!string.IsNullOrEmpty(this.txtDtAcolhimentoAte.Text))
                {
                    dtAcolhimentoDe = dtAcolhimentoAte;
                }

                if (!string.IsNullOrEmpty(this.txtDtAcolhimentoAte.Text))
                {
                    dtAcolhimentoAte = DateTime.Parse(this.txtDtAcolhimentoAte.Text);
                }
                else if (!string.IsNullOrEmpty(this.txtDtAcolhimentoDe.Text))
                {
                    dtAcolhimentoAte = dtAcolhimentoDe;
                }


				//Recupera a lista de registros segundo a pesquisa
                this.grvResultado.DataSource = this.SgiDAOT.getTicketfins(idTicketFin, origem, idFilial, null, null, finalidade, situacao, dtTicketFinDe, dtTicketFinAte, dtAcolhimentoDe, dtAcolhimentoAte);
				//Vincula os dados
				this.grvResultado.DataBind();
			}
			catch (Exception ex)
			{

				throw ex;
			}
		}

		protected void imgbVisualizar_Click(object sender, ImageClickEventArgs e)
		{
			// Declara objetos
			TicketfinVO ticketfinVO = null;
			int idTicketFin = 0;

			try
			{
				//Recupera os argumentos com o ID do objeto
				string[] argumentos = ((ImageButton)sender).CommandArgument.Split(';');
				idTicketFin = Int32.Parse(argumentos[0]);

				//Recupera o objeto
				ticketfinVO = this.SgiDAOT.getTicketfin(idTicketFin);

				this.txtCadIdTicketFin.Text = ticketfinVO.idTicketFin.ToString();
				this.txtCadDtTicketFin.Text = ticketfinVO.dtTicketFin.ToString("dd/MM/yyyy HH:mm:ss");
				this.txtCadFinalidade.Text = ticketfinVO.finalidade;
				this.ddlCadSituacao.SelectedValue = Convert.ToString(ticketfinVO.situacao);
				this.txtCadValor.Text = String.Format("{0:n2}", ticketfinVO.valor);

				if(ticketfinVO.dtAcolhimento==null)
					this.txtCadDtAcolhimento.Text = null;
				else
					this.txtCadDtAcolhimento.Text = ticketfinVO.dtAcolhimento.Value.ToString("dd/MM/yyyy HH:mm:ss");

                if (ticketfinVO.idCaixaMovto != null)
                    this.txtCadMvtoOrigem.Text = "CAIXA";
                else if (ticketfinVO.idMvtoFin != null)
                    this.txtCadMvtoOrigem.Text = "FINANCEIRO";
                else
                    this.txtCadMvtoOrigem.Text = String.Empty;

                if (ticketfinVO.idCaixaMovtoA != null)
                    this.txtCadMvtoAcolhimento.Text = "CAIXA";
                else if (ticketfinVO.idMvtoFinA != null)
                    this.txtCadMvtoAcolhimento.Text = "FINANCEIRO";
                else
                    this.txtCadMvtoAcolhimento.Text = String.Empty;


				this.ltCadastradoPor.Text = ticketfinVO.cadastradoPor;
				this.ltEditadoPor.Text = ticketfinVO.editadoPor;
				this.ltDataCadastro.Text = ticketfinVO.cadastro.ToString("dd/MM/yyyy");
				this.ltDataEdicao.Text = ticketfinVO.edicao.ToString("dd/MM/yyyy");

				//Habilita tab page do cadastro
				this.tabTicketfin.ActiveTabIndex = 1;


			}
			catch (Exception ex)
			{

				throw ex;
			}
		}

        protected void grvResultado_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                TicketfinVO ticketfinVO = (TicketfinVO)e.Row.DataItem;
                Label lblsituacao = (Label)e.Row.FindControl("lblsituacao");

                if (ticketfinVO != null)
                {
                    if (ticketfinVO.situacao == 'A')
                        lblsituacao.Text = "Acolhido";
                    else
                        lblsituacao.Text = "Transa&ccedil;&atilde;o";
                }
                else
                {
                    lblsituacao.Text = String.Empty;
                }

            }
        }

	}
}
